package 网络编程.网络聊天室;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class country {
    public static void main(String[] args) throws IOException {
        //网络聊天室的客户端
        Scanner sc=new Scanner(System.in);
        //1.创建连接通道
        Socket socket=new Socket("127.0.0.1",10000);

        while (true) {
            System.out.println("服务器已连接成功");
            System.out.println("============欢迎来到网络聊天室===============");
            System.out.println("1登录");
            System.out.println("2注册");
            System.out.print("请输入你的选择：");
            String select = sc.next();
            switch (select){
                case "1" -> login(socket);
                case "2" -> {System.out.println("注册");}
                default -> System.out.println("输入不合法");
            }
        }
    }
    public  static void login(Socket socket) throws IOException {
            //获取输出流
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            // 发送选择信息给服务器
            bw.write("login");
            bw.newLine();
            bw.flush();

            //接收用户的输入
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入用户名:");
            String username = sc.nextLine();
            System.out.println("请输入密码:");
            String password = sc.nextLine();

            System.out.println("登录信息已经发送");
            //2.发送用户名和密码给服务器
            String userInf="username="+username+"&"+"password="+password;
            bw.write(userInf);
            bw.newLine();
            bw.flush();
            System.out.println(userInf);
            System.out.println("开始接收返回的值");
            //接收数数据获取输入流
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String result = br.readLine();
            System.out.println(result);
            //根据服务器返回的结果进行判断 0 用户名不存在 1 密码错误 2 登录成功
            if (result.equals("0")){
                System.out.println("用户名不存在,请重新输入");
            }else if (result.equals("1")) {
                System.out.println("密码错误");
            }else {
                System.out.println("登录成功");
                //登录成功单独开一条线程接收信息
                new Thread(new counytryMyRun(socket)).start();
                takeAll(bw);
            }


    }

    private static void takeAll(BufferedWriter bw) throws IOException {
        Scanner sc=new Scanner(System.in);
        //发送信息给服务器
        System.out.println("开始发送信息到服务器");
        while (true){
            System.out.println("请输入你要发送的内容");
            String str = sc.nextLine();
            bw.write(str);
            bw.newLine();
            bw.flush();
            System.out.println("发送完成");
        }
    }
}
